Búsqueda de patrones.
Obviamente, la técnica es muy sensible a cambios de escala, rotación o deformaciones 3D de los objetos.
Ejemplo 1. Cambio de escala.
Imagen de entrada, A
Mapa de matching, M
63% 82% 100% 116% 143%
0,523 0,724 0,947 0,761 0,640
Imagen de entrada, A
Mapa de matching, M
20º 10º 0º 15º 25º
0,574 0,756 0,947 0,664 0,507
Ejemplo 2. Cambio de rotación.
Búsqueda de patrones.
Soluciones:
Utilizar varios patrones, con distintos tamaños y rotaciones.
Hacer una búsqueda multiescala. Aplicar el proceso escalando la imagen a: 50%, 75%, 100%, 125%, …
Usar alguna técnica de atención selectiva. Por ejemplo, usar color o bordes para centrar la atención en ciertas partes de la imagen.
Otra aplicación interesante del template matching es la correspondencia: dado un par de imágenes de una misma escena, encontrar los puntos equivalentes de ambas.
Idea: el patrón se extrae de una imagen y se aplica en la otra. El máximo (o mínimo) matching indica la equivalencia de puntos.
Ejemplo: composición panorámica.
Búsqueda de patrones.
Problema: dadas dos imágenes de sitios adyacentes, obtener una composición panorámica de forma automática.
Como vimos en el tema 4, se usa una transf. geométrica.
¿Cómo obtener los parámetros de la transf.? ? Encontrar puntos equivalentes entre ambas imágenes.
Imagen A (izquierda)
Imagen B (derecha)
Búsqueda de patrones.
Proceso de composición panorámica:
Escoger dos trozos de la imagen A que se espera que aparezcan en B. ¿Qué trozos?
1.1) Deben ser trozos en el solapamiento entre A y B. Si A es la imagen izquierda, un trozo de la derecha.
1.2) El trozo debe tener elementos claramente definidos.
Imagen A (izquierda)
Este patrón no es muy bueno, no es nada significativo… descartarlo
Este patrón es OK
Este patrón también parece OK, pero… ¿y la barandilla?
Búsqueda de patrones.
2) Para cada patrón escogido, buscarlo en la imagen B.
2.1) Aplicar template matching.
2.2) Quedarse con el máximo.
Imagen B (derecha)
Patrón 1
Mapa de matching
Localización resultante
Búsqueda de patrones.
2) Para cada patrón escogido, buscarlo en la imagen B.
Imagen B (derecha)
Patrón 2
Mapa de matching
Localizaciones resultantes
Aquí la cosa no está tan clara, pero podríamos aplicar unas cuantas heurísticas sencillas y descartar las localizaciones inviables…
Procesamiento Audiovisual 17
Tema 6. Análisis de imágenes.
Búsqueda de patrones.
Con las localizaciones equivalentes, calcular los parámetros de la transf. geométrica.
Aplicar la transformación y componer las dos imágenes.
Búsqueda de patrones.
Otra aplicación es el seguimiento de objetos: localizar la posición de un objeto a lo largo de una secuencia de vídeo.
En un vídeo se espera que haya cierta “continuidad temporal”, los elementos de la escena varían lentamente.
Idea: aplicar template matching, usando como patrón el ROI del objeto en el instante t, aplicado sobre la imagen en t+1.
Ejemplo. Seguimiento de caras. Suponemos una detección inicial.
Imagen en t = 0
Patrón de cara, P0
Búsqueda de patrones.
Proceso de seguimiento usando template matching:
Detectar la posición inicial del objeto, R0.
Repetir para cada frame t= 1…N:
2.1) Extraer la región Pt-1 del frame t-1 usando Rt-1.
2.2) Aplicar matching del patrón Pt-1 en la imagen del frame t.
2.3) Seleccionar la pos. del máximo, poniendo el resultado en Rt.
Imagen en t = 1
Imagen en t = 0
R0
Búsqueda de patrones.
Patrón de cara, P0
Imagen en t = 1
Mapa de matching
Localización resultante
Ver que aquí el máximo es bastante destacado
R1
Búsqueda de patrones.
El proceso se repite para todos los frames de la secuencia.
Se podrían añadir algunas heurísticas adicionales: que el salto no sea muy grande, que el valor de matching no baje de un umbral, etc.
Búsqueda de patrones.
Conclusiones:
Template matching: buscar las apariciones de un trozo de imagen en otra imagen de tamaño mayor.
El proceso de cálculo es parecido a una convolución.
Ventajas:
La idea es muy sencilla, aunque tiene un gran potencial.
Aplicación en detección, reconocimiento, seguimiento de objetos, etc.
Desventajas:
Es muy sensible a rotaciones, escala, etc.
Además, en la vida real encontramos objetos 3D flexibles, lo que supone más variabilidad.
La aplicación de la técnica es muy costosa, O(WHwh). Cuando la resolución aumenta al doble, el tiempo se multiplica por 16.
Flujo óptico.
El flujo óptico es una técnica de análisis de imágenes que se aplica en secuencias de vídeo.
En concreto, el flujo óptico define los vectores de movimiento de diferentes trozos de la imagen.
Aplicaciones: detección de movimiento, seguimiento de objetos por partes, compresión de vídeo, composición, etc.
Ejemplo. Imágenes de entrada Flujo óptico resultante
Flujo óptico.
Existen diversas formas de calcular el flujo óptico.
Una forma sencilla está basada en la técnica del template matching: dividir la imagen en bloques, para cada bloque de una imagen buscar la correspondencia en la otra.
Imagen en t-1
Imagen en t
Buscar todos los trozos en la otra imagen sería muy costoso…
Pero normalmente el desplazamiento será pequeño ?Buscar sólo en una cierta vecindad local.
Flujo óptico.
Parámetros para el cálculo del flujo óptico:
Tamaño de los bloques a usar.
Ni muy pequeños ni muy grandes. Si son pequeños, contienen pocas características y el matching es poco fiable.
Si son grandes, perdemos resolución (menos vectores de movimiento). También hay problemas si el bloque se sale de la imagen.
Radio de búsqueda. Determina el tamaño de la zona, en la imagen t, donde se busca el bloque de entrada de la t-1.
Cuanto más grande, más tiempo de ejecución.
Si es muy pequeño y el movimiento es mayor, el resultado será impredecible.
Función de matching a emplear. Para este problema se podría usar una simple suma de diferencias. Para conseguir invarianza a cambios de iluminación, mejor usar un producto vectorial normalizado.
Flujo óptico.
Proceso de cálculo del flujo óptico.
Parámetros de entrada: A, B: imágenes de tamaño WxH; (w, h) tamaño de los bloques; (rx, xy) radio de búsqueda.
Salida: VelX, VelY: matrices de tamaño ?W/w? x ?H/h?.
Para cada posición (i, j) en el rangode VelX y VelY hacer:
1.1) Sea P el rectángulo[i·w, j·h]–[(i+1)w-1, (j+1)h-1] de A
1.2) Sea I el rectángulo [i·w-rx, j·h-ry]–[(i+1)w-1+rx, (j+1)h-1+ry] de B
1.3) Aplicar matching del patrón P en la imagen I, obteniendo el resultado en M de tamaño (2·rx+1, 2·ry+1)
1.4) Buscar el máximo valor de matching:(mx, my) = argmax?a,b M(a,b)
1.5) VelX(i, j)= mx-rx; VelY(i, j)= my-ry
A
P
I
M
VelX, VelY
Flujo óptico.
Ejemplo. Cálculo del flujo óptico por matching de bloques.
Vídeo de entrada
Resolución: 408×240
Flujo óptico resultante
Tamaño de bloque: 21×21
Radio de búsqueda: 21×21
Flujo óptico.
Otra aplicación interesante es la composición de vídeo por barrido.
Problema: dada una secuencia de vídeo donde la cámara gira (o se desplaza lateralmente), componer una imagen con todo el campo de visión disponible.
Ejemplo.
Vídeo de entrada
Panorámica resultante
Flujo óptico.
La composición de vídeo se puede ver como un proceso de añadir tiras de imágenes.
El tamaño y posición de la tira añadida depende de la cantidad y dirección de movimiento detectado en las imágenes.
Proceso de composición por barrido:
En la imagen inicial t= 0,seleccionar una regióncentral (una tira)perpendicular a ladirección del movimiento.
Inicializar con ella laimagen acumulada (Acum).
Por ejemplo, seleccionarel rectángulo [100, 0]–[120, 320].
Imagen en t=0
Acum0
Flujo óptico.
2) Usando el flujo óptico, detectar la cantidad de movimiento de cada nuevo frame, t, respecto al anterior, t-1. ? VelX, VelY
– Por ejemplo, se puede tomar la media de velocidad en X e Y, vx= Media(VelX), vy= Media(VelY).
Imagen en t=0
Imagen en t=1
VelX, VelY
vx= 38, vy= 4
Ojo: descartar los bloques de los exteriores
Flujo óptico.
3) Añadir a la imagen acumulada, Acum, la tira correspondiente en función de la velocidad calculada en el paso anterior.
– En el ejemplo, añadir el rectángulo [100, 0]–[100+vx, 320], desplazado en (-vx, -vy) píxeles respecto al último añadido.
Imagen en t=1
(vx, vy)
Acum1
Tira1
Acum0
Flujo óptico.
Ejemplo. Composición de vídeo por barrido.
Otras cuestiones adicionales:
Compensación del brillo (y tal vez del balance de blancos).
Al final puede ser necesario aplicar una rotación de la imagen.
¿Qué ocurre si hay movimiento en la escena?
Flujo óptico.
Conclusiones:
Flujo óptico: vectores de movimiento entre dos imágenes de una secuencia de vídeo.
Es una técnica específica de vídeo.
Además del método básico (utilizando template matching) existen otras muchas formas de calcularlo.
Ventajas:
Permite comprender mejor la información contenida en un vídeo, la evolución en la escena: detectar si hay cambios en la escena, en qué posiciones, qué cantidad, etc.
Inconvenientes:
La técnica es muy lenta. Es inviable aplicarla en tiempo real.
Difícil ajustar los parámetros para un funcionamiento óptimo: tamaño de bloques y radio de búsqueda.
Página anterior | Volver al principio del trabajo | Página siguiente |